table.insert(itemActions,
	function(item, action)
		-- WHITE shields
		local priority = 8 -- pick priority

		if not (isGoodWhiteShield(item) or isGoodWhiteAuricShield(item)) then 
			return false
		elseif action == aPICK then
			return priority
		end

		return false
	end
)

minWhiteShieldED = 14 -- change these if you want
minWhiteAuricShieldEDam = 60
minWhiteAuricShieldRes = 40
	--[[
		-1 will keep all normal and superior
		0 will keep only superior with 1+ed (it will not keep dura only superiors)
		1 will do the same (go figure)
		15 will keep only superior with 15ed
		etc.
		*the above applies to "minWhiteShieldED" and "minWhiteAuricShieldEDam"
		*"minWhiteShieldED" does NOT apply to paladin shields
		
		minWhiteAuricShieldRes: 0 will keep noRes, noEdam, so it is best to put atleast 1+
		]]


function isGoodWhiteShield(item)
	return (
			(
			item.baseItem.code == "uit" or -- Monarch
			item.baseItem.code == "ush" -- Troll
			
			) and
			(
			item.quality == ItemQuality.Normal or
			item.quality == ItemQuality.Superior
			)
			and not item.flags.Ethereal and
			findStat(item, "Defense Percent") >= minWhiteShieldED and
			hasCertainSockets(item, "034")
			)
	end

--[[
-- commented out in favor of the above function. This one excludes normal shields
-- even if they are enabled above, due to its wording.

function isGoodWhiteShield(item)
	return (
			(
			item.baseItem.code == "uit" or -- Mon
			item.baseItem.code == "ush"-- Troll
			) and
			item.quality == ItemQuality.Superior and not item.flags.Ethereal and
			findStat(item, "Defense Percent") >= minWhiteShieldED and
			hasCertainSockets(item, "034")
			)
end

]]-- 

function isGoodWhiteAuricShield(item)
	return (
			(
			item.baseItem.code == "pab" or -- STarge
			item.baseItem.code == "pac" or -- SRondache
			item.baseItem.code == "pad" or -- Kurast
			item.baseItem.code == "pae" or -- Zakarum
			item.baseItem.code == "paf" -- Vortex
			) and
			(
			item.quality == ItemQuality.Normal or
			item.quality == ItemQuality.Superior
			) and
			not item.flags.Ethereal and
			hasCertainSockets(item, "034") and
			(
			findStat(item, "Min Damage Percent") >= minWhiteAuricShieldEDam or
			hasRes(item, minWhiteAuricShieldRes, 4)
			)
			)
end